home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 1998 November / IRIX 6.5.2 Base Documentation November 1998.img / usr / share / catman / p_man / cat3 / libelfutil / xlate_expand_reg_info.z / xlate_expand_reg_info
Text File  |  1998-10-30  |  14KB  |  198 lines

  1.  
  2.  
  3.  
  4. XXXXLLLLAAAATTTTEEEE____EEEEXXXXPPPPAAAANNNNDDDD____RRRREEEEGGGG____IIIINNNNFFFFOOOO((((3333EEEE))))                            XXXXLLLLAAAATTTTEEEE____EEEEXXXXPPPPAAAANNNNDDDD____RRRREEEEGGGG____IIIINNNNFFFFOOOO((((3333EEEE))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      _xxxx_llll_aaaa_tttt_eeee______eeee_xxxx_pppp_aaaa_nnnn_dddd______rrrr_eeee_gggg______iiii_nnnn_ffff_oooo: _xxxx_llll_aaaa_tttt_eeee______eeee_xxxx_pppp_aaaa_nnnn_dddd______rrrr_eeee_gggg______iiii_nnnn_ffff_oooo_2222 - expand register
  10.      instructions
  11.  
  12. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  13.      _####_iiii_nnnn_cccc_llll_uuuu_dddd_eeee _<<<<_eeee_llll_ffff_...._hhhh_>>>>
  14.      _####_iiii_nnnn_cccc_llll_uuuu_dddd_eeee _<<<<_llll_iiii_bbbb_eeee_llll_ffff_...._hhhh_>>>>
  15.      _####_iiii_nnnn_cccc_llll_uuuu_dddd_eeee _<<<<_dddd_wwww_aaaa_rrrr_ffff_...._hhhh_>>>>
  16.      _####_iiii_nnnn_cccc_llll_uuuu_dddd_eeee _<<<<_llll_iiii_bbbb_dddd_wwww_aaaa_rrrr_ffff_...._hhhh_>>>>
  17.      _####_iiii_nnnn_cccc_llll_uuuu_dddd_eeee _<<<<_cccc_mmmm_pppp_llll_rrrr_ssss_////_xxxx_llll_aaaa_tttt_eeee_...._hhhh_>>>>
  18.      _####_iiii_nnnn_cccc_llll_uuuu_dddd_eeee _<<<<_llll_iiii_bbbb_XXXX_llll_aaaa_tttt_eeee_...._hhhh_>>>>
  19.      _iiii_nnnn_tttt _xxxx_llll_aaaa_tttt_eeee______eeee_xxxx_pppp_aaaa_nnnn_dddd______rrrr_eeee_gggg______iiii_nnnn_ffff_oooo_((((_xxxx_llll_aaaa_tttt_eeee______tttt_aaaa_bbbb_llll_eeee______cccc_oooo_nnnn _cccc_oooo_nnnn______tttt_aaaa_bbbb_llll_eeee______pppp_tttt_rrrr_,,,,
  20.        _EEEE_llll_ffff_6666_4444______XXXX_wwww_oooo_rrrr_dddd      _****_nnnn_uuuu_mmmm______iiii_nnnn_ssss_tttt_rrrr_ssss_,,,,
  21.        _xxxx_llll_aaaa_tttt_eeee______rrrr_eeee_gggg______iiii_nnnn_ssss_tttt_rrrr  _****_****_iiii_nnnn_ssss_tttt_rrrr_uuuu_cccc_tttt_iiii_oooo_nnnn_ssss
  22.      _))))_;;;;
  23.      _iiii_nnnn_tttt _xxxx_llll_aaaa_tttt_eeee______eeee_xxxx_pppp_aaaa_nnnn_dddd______rrrr_eeee_gggg______iiii_nnnn_ffff_oooo_2222_((((_xxxx_llll_aaaa_tttt_eeee______tttt_aaaa_bbbb_llll_eeee______cccc_oooo_nnnn _cccc_oooo_nnnn______tttt_aaaa_bbbb_llll_eeee______pppp_tttt_rrrr_,,,,
  24.        _EEEE_llll_ffff_6666_4444______XXXX_wwww_oooo_rrrr_dddd      _****_nnnn_uuuu_mmmm______iiii_nnnn_ssss_tttt_rrrr_ssss_,,,,
  25.        _xxxx_llll_aaaa_tttt_eeee______rrrr_eeee_gggg______iiii_nnnn_ssss_tttt_rrrr_2222  _****_****_iiii_nnnn_ssss_tttt_rrrr_uuuu_cccc_tttt_iiii_oooo_nnnn_ssss
  26.      _))))_;;;;
  27.  
  28. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  29.      These are useful for programs like _e_l_f_d_u_m_p(1) to show the actual contents
  30.      of the register location expressions.  These are otherwise very useful.
  31.      The functions and the values returned throught the pointers are identical
  32.      except that _x_l_a_t_e__r_e_g__i_n_s_t_r_2 has an extra field in the definition.  The
  33.      extra field, _s_r__i_n_s_t_r__o_f_f_s_e_t, is the byte offset in the register
  34.      instruction stream of the first byte of the particular register
  35.      instruction.
  36.  
  37.      Aside from the additional field in the structure the functions are
  38.      identical.
  39.  
  40.      _x_l_a_t_e__r_e_g__i_n_s_t_r is now considered obsolete.  Applications should cease
  41.      using it in favor of _x_l_a_t_e__r_e_g__i_n_s_t_r_2.
  42.  
  43.      Applications desiring the fastest possible speed will want to call
  44.      _x_l_a_t_e__e_x_p_a_n_d__r_e_g__i_n_f_o_2 rather than _x_l_a_t_e__e_x_p_a_n_d__r_e_g__i_n_f_o as the former is
  45.      slightly faster (the latter is implemented by _m_a_l_l_o_cing another array and
  46.      copying portions of the _x_l_a_t_e__r_e_g__i_n_s_t_r_2 array and it is the malloc and
  47.      copying that slows _x_l_a_t_e__r_e_g__i_n_s_t_r down in this implementation).
  48.  
  49.      The arguments of _x_l_a_t_e__e_x_p_a_n_d__r_e_g__i_n_f_o and _x_l_a_t_e__e_x_p_a_n_d__r_e_g__i_n_f_o_2 are:
  50.  
  51.      _c_o_n__t_a_b_l_e__p_t_r
  52.              which must be a valid open handle on a translation section.
  53.  
  54.      The following arguments are pointers thru which values are returned.
  55.  
  56.      _n_u_m__i_n_s_t_r_s
  57.              The value is the number of elements in the iiiinnnnssssttttrrrruuuuccccttttiiiioooonnnnssss array.
  58.  
  59.  
  60.  
  61.  
  62.                                                                         PPPPaaaaggggeeee 1111
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69. XXXXLLLLAAAATTTTEEEE____EEEEXXXXPPPPAAAANNNNDDDD____RRRREEEEGGGG____IIIINNNNFFFFOOOO((((3333EEEE))))                            XXXXLLLLAAAATTTTEEEE____EEEEXXXXPPPPAAAANNNNDDDD____RRRREEEEGGGG____IIIINNNNFFFFOOOO((((3333EEEE))))
  70.  
  71.  
  72.  
  73.      _i_n_s_t_r_u_c_t_i_o_n_s
  74.              The value is a pointer to an array of _x_l_a_t_e__r_e_g__i_n_s_t_r structs.
  75.              This array must be _f_r_e_e(2)d by the application to avoid memory
  76.              leakage.
  77.  
  78.      See _x_l_a_t_e(4) for detailed information on the way each element of this
  79.      array is actually filled out.  Each element of the array contains
  80.  
  81.      _s_r__o_p   which is an 8-bit op-code possibly ORd with data.
  82.  
  83.      _s_r__v_a_l_1 Which is a 64-bit value  whose meaning depends on _s_r__o_p .
  84.  
  85.      _s_r__v_a_l_2 Which is a 64-bit value whose meaning depends on _s_r__o_p .
  86.  
  87.      _s_r__i_n_s_t_r__o_f_f_s_e_t
  88.              appears only in the  _x_l_a_t_e__r_e_g__i_n_s_t_r_2 version and is the byte
  89.              offset of the _s_r__o_p in the register instruction byte stream
  90.              (before unpacking the byte stream).
  91.  
  92.      A sample use is:
  93.           _iiii_nnnn_tttt _rrrr_eeee_ssss_uuuu_llll_tttt_;;;;
  94.           _xxxx_llll_aaaa_tttt_eeee______rrrr_eeee_gggg______iiii_nnnn_ssss_tttt_rrrr_2222 _****_iiii_nnnn_ssss_tttt_rrrr_uuuu_cccc_tttt_iiii_oooo_nnnn_ssss_;;;;
  95.           _EEEE_llll_ffff_6666_4444______XXXX_wwww_oooo_rrrr_dddd _nnnn_uuuu_mmmm______iiii_nnnn_ssss_tttt_rrrr_ssss_;;;;
  96.           _rrrr_eeee_ssss_uuuu_llll_tttt _==== _xxxx_llll_aaaa_tttt_eeee______eeee_xxxx_pppp_aaaa_nnnn_dddd______rrrr_eeee_gggg______iiii_nnnn_ffff_oooo_2222_((((_cccc_oooo_nnnn______tttt_aaaa_bbbb_llll_eeee_,,,,
  97.               _&&&&_nnnn_uuuu_mmmm______iiii_nnnn_ssss_tttt_rrrr_ssss_,,,,
  98.               _&&&&_iiii_nnnn_ssss_tttt_rrrr_uuuu_cccc_tttt_iiii_oooo_nnnn_ssss_))))_;;;;
  99.           _ffff_oooo_rrrr_((((_iiii _==== _0000_;;;; _iiii _<<<< _nnnn_uuuu_mmmm______iiii_nnnn_ssss_tttt_rrrr_ssss_;;;; _++++_++++_iiii_))))
  100.           _{{{{
  101.             _pppp_rrrr_iiii_nnnn_tttt_ffff_((((_""""_%%%%_dddd _%%%%_llll_llll_dddd _%%%%_llll_llll_dddd _%%%%_llll_dddd_0000_,,,,
  102.              _((((_iiii_nnnn_tttt_))))_iiii_nnnn_ssss_tttt_rrrr_uuuu_cccc_tttt_iiii_oooo_nnnn_ssss_[[[[_iiii_]]]]_...._ssss_rrrr______oooo_pppp_,,,,
  103.              _((((_llll_oooo_nnnn_gggg _llll_oooo_nnnn_gggg_))))_iiii_nnnn_ssss_tttt_rrrr_uuuu_cccc_tttt_iiii_oooo_nnnn_ssss_[[[[_iiii_]]]]_...._ssss_rrrr______vvvv_aaaa_llll_1111_,,,,
  104.              _((((_llll_oooo_nnnn_gggg _llll_oooo_nnnn_gggg_))))_iiii_nnnn_ssss_tttt_rrrr_uuuu_cccc_tttt_iiii_oooo_nnnn_ssss_[[[[_iiii_]]]]_...._ssss_rrrr______vvvv_aaaa_llll_2222_,,,,
  105.              _((((_llll_oooo_nnnn_gggg_))))_iiii_nnnn_ssss_tttt_rrrr_uuuu_cccc_tttt_iiii_oooo_nnnn_ssss_[[[[_iiii_]]]]_...._ssss_rrrr______vvvv_aaaa_llll_2222_,,,,
  106.           _}}}}
  107.           _ffff_rrrr_eeee_eeee_((((_iiii_nnnn_ssss_tttt_rrrr_uuuu_cccc_tttt_iiii_oooo_nnnn_ssss_))))_;;;;
  108.  
  109. FFFFIIIILLLLEEEESSSS
  110.      /usr/include/libXlate.h
  111.      /usr/include/cmplrs/xlate.h
  112.      /usr/include/elf.h
  113.      /usr/include/dwarf.h
  114.      /usr/include/libdwarf.h
  115.      /usr/lib/libelfutil.a
  116.  
  117. DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
  118.      Returns XLATE_TB_STATUS_NO_ERROR (0) on success.  In case of error, a
  119.      negative number is returned indicating the error.  In case of error,
  120.      nothing is returned thru the pointer arguments which would return values
  121.      on successful call (values might have been changed thru these pointers
  122.      but any such changes are not meaningful).
  123.  
  124.  
  125.  
  126.  
  127.  
  128.                                                                         PPPPaaaaggggeeee 2222
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135. XXXXLLLLAAAATTTTEEEE____EEEEXXXXPPPPAAAANNNNDDDD____RRRREEEEGGGG____IIIINNNNFFFFOOOO((((3333EEEE))))                            XXXXLLLLAAAATTTTEEEE____EEEEXXXXPPPPAAAANNNNDDDD____RRRREEEEGGGG____IIIINNNNFFFFOOOO((((3333EEEE))))
  136.  
  137.  
  138.  
  139.      _X_L_A_T_E__T_B__S_T_A_T_U_S__N_O__R_E_G__I_N_F_O
  140.              meaning that there is no register info available.  Typically,
  141.              this means the translation was done by _c_o_r_d(1).  This is really
  142.              not an error. It is a special status indicator applications need
  143.              to anticipate.
  144.  
  145.      _X_L_A_T_E__T_B__S_T_A_T_U_S__I_N_V_A_L_I_D__T_A_B_L_E
  146.              means that the _t_a_b argument is not a valid open consumer table or
  147.              that the data pointed at has been corrupted by a _m_a_l_l_o_c arena
  148.              corruption.
  149.  
  150.      _X_L_A_T_E__T_B__S_T_A_T_U_S__A_L_L_O_C__F_A_I_L
  151.              A call to _m_a_l_l_o_c() or _r_e_a_l_l_o_c() failed.
  152.  
  153.      _X_L_A_T_E__T_B__S_T_A_T_U_S__B_A_D__R_E_G__V_A_L
  154.              means that the register number (somewhere in the table) is too
  155.              large to be used as an index into the Dwarf_Regtable array (see
  156.              <libdwarf.h>).  This is either a memory corruption, a bogus
  157.              register area on the Elf xlate section, or an internal logic
  158.              error in the internals of this _l_i_b_e_l_f_u_t_i_l function.  Should never
  159.              happen.
  160.  
  161.      _X_L_A_T_E__T_B__S_T_A_T_U_S__B_A_D__F_R_A_M_E__O_P
  162.              means that the Dwarf frame op code is not one of the ones
  163.              expected.  This is data corruption or an internal error in this
  164.              _l_i_b_e_l_f_u_t_i_l function.  Should never happen.
  165.  
  166.      _X_L_A_T_E__T_B__S_T_A_T_U_S__R_E_G__R_E_Q_U_E_S_T__B_O_G_U_S
  167.              This is an internal error in this _l_i_b_e_l_f_u_t_i_l function.  Should
  168.              never happen.
  169.  
  170. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  171.      libelfutil(5), xlate(4), xlate_get_reg_rule(3e), xlate_init_fd(3e),
  172.      xlate_finish(3e), xlate_pro_init(3e), xlate_pro_finish(3e), DWARF
  173.      Debugging Information Format , A Consumer Library Interface to DWARF
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.                                                                         PPPPaaaaggggeeee 3333
  195.  
  196.  
  197.  
  198.